iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0

異常處理在Spring Boot應用程序中是一個關鍵概念,它允許您優雅地處理應用程序中可能出現的問題,並提供有關問題的詳細信息給用戶或開發人員。Spring Boot提供了多種方法來處理異常,其中一個重要的機制是使用@ControllerAdvice和@ExceptionHandler註解。

@ControllerAdvice

Spring Framework 中用於全局異常處理的註解。它允許您創建一個全局的異常處理器,用於捕獲並處理整個應用程序範圍內拋出的異常。這個異常處理器可以捕獲控制器(@Controller 和 @RestController 類)中拋出的異常,以及其他組件中的異常。

@ExceptionHandler

在 @ControllerAdvice 類中,您可以定義一個或多個方法,並使用 @ExceptionHandler 註解來處理特定類型的異常。每個方法可以處理不同類型的異常,以便根據異常類型採取不同的操作。

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    public ResponseEntity<String> handleException(Exception ex) {
        // 處理異常邏輯
        return new ResponseEntity<>("An error occurred: " + ex.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
    }
}

我們創建了一個名為GlobalExceptionHandler的類,並使用@ControllerAdvice註解標記它,這意味著它將作為全局異常處理器生效。然後,我們定義了一個方法,並使用@ExceptionHandler(Exception.class)註解該方法,以指定它處理所有類型的異常。在該方法內,我們可以定義異常處理邏輯,並返回一個包含錯誤消息的ResponseEntity對象。

Exception.class可以更換成其他異常類型,如:
EntityNotFoundException:當試圖查找不存在的實體時引發此異常。
DataIntegrityViolationException:當違反數據完整性約束(例如,唯一鍵約束)時引發的異常。

使用全局異常處理器的好處

統一異常處理:

使用全局異常處理器,您可以將所有異常處理邏輯集中在一個地方,以確保一致的處理方式。這樣可以減少代碼重複並提高代碼的可維護性。

友好的錯誤消息:

可以在全局異常處理器中提供有關異常的詳細信息,以便更容易進行故障排除和錯誤報告。這些信息可以返回給客戶端或記錄到應用程序的日誌中。

保護應用程序穩定性:

通過捕獲並處理異常,您可以確保應用程序不會因為未處理的異常而崩潰。

自定義錯誤頁面:

可以配置全局異常處理器來返回自定義錯誤頁面,提供更好的用戶體驗。


上一篇
Repository實用指南:CRUD操作和自定義查詢
下一篇
保護您的 Spring 應用程序:Spring Security 逐步指南
系列文
Spring Boot & Android Studio教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言